安裝所有相依的模組,並且將相依的模組連接 (linking) 起來。
lerna bootstrap
發佈模組
lerna publish -y
跟上次 release 相比,有哪些 packages 更變了。
lerna changed
lerna diff [package?]
運行 npm script,可以指定具體的 package
lerna run [script]
顯示 packages 下的各個 package 的 version
lerna ls
刪除所有 node_modules 目錄,包括子模組內的 node_modules 目錄。
lerna clean
講這麼多,沒真的操作看看還是一場空,那就來動手練習一下吧。
mkdir lerna-sandbox-2019
cd lerna-sandbox-2019/
git init
touch .gitignore
lerna init -i
git add .
git commit -m 'step1'
上傳到遠端的 repo
git remote add origin https://github.com/alincode/lerna-sandbox-2019.git
git push -u origin master
lerna create @alincode/app-api-server -y
lerna create @alincode/app-socket-server -y
lerna create @alincode/app-core -y
lerna list
git add .
git commit -m 'step2'
編輯 packages/app-api-server/lib/app-api-server.js
'use strict'
function appApiServer() {
const Koa = require('koa')
const app = new Koa()
app.use(async (ctx) => {
ctx.body = 'Hello World'
})
app.listen(3000)
}
const server = appApiServer()
module.exports = server
安裝 koa 模組
lerna add koa --scope=@alincode/app-api-server
node packages/app-api-server/lib/app-api-server.js
開啟 http://localhost:3000/ 來測試看看
git add .
git commit -m 'step3'
lerna add @alincode/app-core --scope=@alincode/app-api-server
編輯 packages/app-api-server/lib/app-api-server.js,加入下面兩行,
const appCore = require("@alincode/app-core");
appCore();
執行
node packages/app-api-server/lib/app-api-server.js
git add .
git commit -m 'step4'
原始碼 https://github.com/alincode/lerna-sandbox-2019,可以對照的來看。